package main

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"log"
)

func main() {

	engine := gin.Default()

	// Get请求带参数
	engine.GET("/hello", func(context *gin.Context) {
		fmt.Println("请求地址: " + context.FullPath())
		name := context.Query("name")
		context.Writer.Write([]byte("Get请求带参数: " + name))
	})


	// Post请求 formData
	engine.POST("/login", func(context *gin.Context) {
		username, exist1 := context.GetPostForm("username")
		if exist1 {
			fmt.Println(username)
			context.Writer.Write([]byte("Post请求接收的参数: 用户名: " + username + "\n"))
		}
		password, exist2 := context.GetPostForm("password")
		if exist2 {
			fmt.Println(password)
			context.Writer.Write([]byte("Post请求接收的参数 密码: " + password))
		}
	})

	// 根据id删除记录
	engine.DELETE("/delete/:id", func(context *gin.Context) {
		id := context.Param("id")
		fmt.Println(id)
		context.Writer.Write([]byte("删除的id为: " + id))
	})


	// 使用 handle 发送 Get 请求带参数
	engine.Handle("GET", "getAll", func(context *gin.Context) {
		path := context.FullPath()
		fmt.Println(path)

		name := context.DefaultQuery("name", "11")
		context.Writer.Write([]byte("handle的Get请求参数: " + name))

	})

	// 使用 handle 发送 Post 请求接收参数  formData
	engine.Handle("POST", "/register", func(context *gin.Context) {
		username, exits1 := context.GetPostForm("username")
		if exits1 {
			fmt.Println(username)
			context.Writer.Write([]byte("handle的Post接收的参数 用户名: " + username + "\n"))
		}

		password, exist2 := context.GetPostForm("password")
		if exist2 {
			fmt.Println(password)
			context.Writer.Write([]byte("handle的Post接收的参数: 密码" + password))
		}
	})

	if err := engine.Run(":8080"); err != nil {
		log.Fatal(err.Error())
	}
}
